package com.xu.system.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import java.time.LocalTime;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 工作时间配置表
 * </p>
 *
 * @author 许乾伟
 * @since 2024-12-25 10:47:43
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("sys_work_time_config")
public class SysWorkTimeConfig {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 配置编号
     */
    @TableField("config_code")
    private String configCode;

    /**
     * 配置名称
     */
    @TableField("config_name")
    private String configName;

    /**
     * 是否计算双休（false:停用;true:启用）
     */
    @TableField("is_weekend")
    private Boolean isWeekend;

    /**
     * 是否计算午休（false:停用;true:启用）
     */
    @TableField("is_noon_break")
    private Boolean isNoonBreak;

    /**
     * 午休开始时间(需要开启是否计算午休)
     */
    @TableField("noon_break_start_time")
    private LocalTime noonBreakStartTime;

    /**
     * 午休结束时间(需要开启是否计算午休)
     */
    @TableField("noon_break_end_time")
    private LocalTime noonBreakEndTime;

    /**
     * 是否计算上下班（false:停用;true:启用）
     */
    @TableField("is_work_time")
    private Boolean isWorkTime;

    /**
     * 上班开始时间(需要开启是否计算上下班)
     */
    @TableField("work_start_time")
    private LocalTime workStartTime;

    /**
     * 上班结束时间(需要开启是否计算上下班)
     */
    @TableField("work_end_time")
    private LocalTime workEndTime;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 状态（false:停用;true:正常）
     */
    @TableField("status")
    private Boolean status;

    /**
     * 创建者
     */
    @TableField("create_by")
    private Long createBy;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新者
     */
    @TableField("update_by")
    private Long updateBy;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 是否删除（false:正常;true:删除）
     */
    @TableField("is_delete")
    private Boolean isDelete;

    public static final String ID = "id";

    public static final String CONFIG_CODE = "config_code";

    public static final String CONFIG_NAME = "config_name";

    public static final String IS_WEEKEND = "is_weekend";

    public static final String IS_NOON_BREAK = "is_noon_break";

    public static final String NOON_BREAK_START_TIME = "noon_break_start_time";

    public static final String NOON_BREAK_END_TIME = "noon_break_end_time";

    public static final String IS_WORK_TIME = "is_work_time";

    public static final String WORK_START_TIME = "work_start_time";

    public static final String WORK_END_TIME = "work_end_time";

    public static final String REMARK = "remark";

    public static final String STATUS = "status";

    public static final String CREATE_BY = "create_by";

    public static final String CREATE_TIME = "create_time";

    public static final String UPDATE_BY = "update_by";

    public static final String UPDATE_TIME = "update_time";

    public static final String IS_DELETE = "is_delete";
}
